package dao;

import java.util.List;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.HibernateTemplate;
import domena.Ksiegowosc;

public class KsiegowoscDAOImpl implements KsiegowoscDAO {

	private HibernateTemplate hibernateTemplate;

	public void setSessionFactory(SessionFactory sessionFactory) {
		this.hibernateTemplate = new HibernateTemplate(sessionFactory);
	}

	@Override
	public void zapiszKsiegowosc(Ksiegowosc ksiegowosc) {
		hibernateTemplate.save(ksiegowosc);
	}
	
	@Override
	public void edytujKsiegowosc(Ksiegowosc ksiegowosc){
		hibernateTemplate.update(ksiegowosc);
	}
	
	@Override
	public void usunKsiegowosc(long id){
		Ksiegowosc ksiegowosc = getId(id);
		
		if(ksiegowosc!=null)
			hibernateTemplate.delete(ksiegowosc);
	}
	
	@Override
	@SuppressWarnings("unchecked")
	public Ksiegowosc getId(long id) {
		DetachedCriteria cr = DetachedCriteria.forClass(Ksiegowosc.class).add(Restrictions.idEq(id));
				
		List<Ksiegowosc> list = hibernateTemplate.findByCriteria(cr);
		if(!list.isEmpty())
			return list.get(0);
		return null;
	}
	
	@Override
	@SuppressWarnings("unchecked")
	public List<Ksiegowosc> listKsiegowosc() {
		return hibernateTemplate.find("from Ksiegowosc");
	}

}